#SDC for sm3_core_top
#ljgibbs Apr. 2022

#clock
crete_clock -name CLK -period 10 -waveform {0 5} [get_ports clk]

set_clock_transition -rise 0.1 [get_clocks CLK]
set_clock_transition -fall 0.1 [get_clocks CLK]

set_clock_uncertainty -setup 0.2 [get_clocks CLK] 
set_clock_uncertainty -hold  0.2 [get_clocks CLK] 

set_clock_latency -rise 1 [get_clocks CLK]
set_clock_latency -fall 1 [get_clocks CLK]

set_clock_latency -source -max 0.5 [get_clocks CLK]
set_clock_latency -source -min 0.11 [get_clocks CLK]

set_min_pulse_width -high 2 [all_clocks]
set_min_pulse_width -low  2 [all_clocks]

#virtual clock
create_clock -name CLK_V -period 10 -waveform {0 5}

#IO
set inps  []
set otps  []
set inps_noclk []
set otps_noclk []

#set_input_delay -min 2 -clock CLK $inps_noclk
#set_input_delay -max 3 -clock CLK $inps_noclk
#set_output_delay -min 2 -clock CLK_V $otps_noclk
#set_output_delay -max 3 -clock CLK_V $otps_noclk

set_input_delay -min 2 -clock CLK [get_ports msg_inpt_d msg_inpt_vld_byte msg_inpt_vld msg_inpt_lst] 
set_input_delay -max 3 -clock CLK [get_ports msg_inpt_d msg_inpt_vld_byte msg_inpt_vld msg_inpt_lst]  
set_output_delay -min 2 -clock CLK_V [get_ports msg_inpt_rdy cmprss_otpt_res cmprss_otpt_vld]
set_output_delay -max 3 -clock CLK_V [get_ports msg_inpt_rdy cmprss_otpt_res cmprss_otpt_vld]

#except
